<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>基本概念  &middot; sitename</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">


<meta name="description" content="基本概念 description" />

<meta name="keywords" content="one, two, ">


<meta property="og:title" content="基本概念  &middot; sitename ">
<meta property="og:site_name" content="sitename"/>
<meta property="og:url" content="https://lvzongcheng.gitee.io/java/%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/" />
<meta property="og:locale" content="en-EN">


<meta property="og:type" content="article" />
<meta property="og:description" content="基本概念 description"/>
<meta property="og:article:published_time" content="2017-05-13T00:00:00Z" />
<meta property="og:article:modified_time" content="2017-05-13T00:00:00Z" />

  
    
<meta property="og:article:tag" content="one">
    
<meta property="og:article:tag" content="two">
    
  

  

<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Article",
    "headline": "基本概念",
    "author": {
      "@type": "Person",
      "name": "LvZongCheng"
    },
    "datePublished": "2017-05-13",
    "description": "基本概念 description",
    "wordCount":  218 
  }
</script>



<link rel="canonical" href="https://lvzongcheng.gitee.io/java/%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/" />

<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://lvzongcheng.gitee.io/touch-icon-144-precomposed.png">
<link href="https://lvzongcheng.gitee.io/favicon.png" rel="icon">

<meta name="generator" content="Hugo 0.60.0" />

  <!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

<link href='https://fonts.googleapis.com/css?family=Merriweather:300%7CRaleway%7COpen+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="/css/font-awesome.min.css">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/highlight/default.css">

  
  
	<script>
	  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
	  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

	  ga('create', 'Your Google Analytics tracking code', 'auto');
	  ga('send', 'pageview');

	</script>

</head>
<body>
  <main id="main-wrapper" class="container main_wrapper has-sidebar">
    <header id="main-header" class="container main_header">
  <div class="container brand">
  <div class="container title h1-like">
  <a class="baselink" href="https://lvzongcheng.gitee.io">
  LvZongCheng

</a>

</div>

  
<div class="container topline">
  
  淡定 执著 进取 自律


</div>


</div>

  <nav class="container nav primary no-print">
  

<a class="homelink" href="https://lvzongcheng.gitee.io">home</a>


  
<a href="https://lvzongcheng.gitee.io/framework" title="Show list of Frameworks">Frameworks</a>

<a href="https://lvzongcheng.gitee.io/java" title="Show list of Java">Java</a>

<a href="https://lvzongcheng.gitee.io/linux" title="Show list of Linux">Linux</a>

<a href="https://lvzongcheng.gitee.io/redis" title="Show list of Redis">Redis</a>

<a href="https://lvzongcheng.gitee.io/sql" title="Show list of SQL">SQL</a>

<a href="https://lvzongcheng.gitee.io/Spring" title="Show list of Spring">Spring</a>

<a href="https://lvzongcheng.gitee.io/tools" title="Show list of Tools">Tools</a>

<a href="https://lvzongcheng.gitee.io/webpage" title="Show list of WebPage">WebPage</a>

<a href="https://lvzongcheng.gitee.io/information" title="Show list of information">information</a>

<a href="https://lvzongcheng.gitee.io/network" title="Show list of network">network</a>

<a href="https://lvzongcheng.gitee.io/%E5%BE%AE%E6%9C%8D%E5%8A%A1" title="Show list of 微服务">微服务</a>

<a href="https://lvzongcheng.gitee.io/%E6%80%BB%E7%BB%93" title="Show list of 总结">总结</a>

<a href="https://lvzongcheng.gitee.io/%E6%9C%BA%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96" title="Show list of 机器自动化">机器自动化</a>

<a href="https://lvzongcheng.gitee.io/%E6%B1%87%E7%BC%96" title="Show list of 汇编">汇编</a>

<a href="https://lvzongcheng.gitee.io/%E8%AE%B0%E4%BA%8B%E6%9C%AC" title="Show list of 记事本">记事本</a>


</nav>

<div class="container nav secondary no-print">
  
<a id="contact-link-email" class="contact_link" rel="me" aria-label="Email" href="mailto:Lyc19880405@163.com">
  <span class="fa fa-envelope-square"></span></a>



<a id="contact-link-github" class="contact_link" rel="me" aria-label="Github" href="https://github.com/enten/hugo-boilerplate">
  <span class="fa fa-github-square"></span></a>




 


















</div>


  

</header>


<article id="main-content" class="container main_content single">
  <header class="container hat">
  <h1>基本概念
</h1>

</header>

  <div class="container content">
  <h5 id="java">JAVA泛型</h5>
<p><strong>所谓泛型，就是在定义类、接口、方法、参数或成员变量的时候，指</strong><br>
<strong>定它们操作对象的类型为通用类型。</strong><br>
<strong>使用 尖括号 &lt;&gt; 操作符 (The diamond operator )表示泛型, 尖括</strong><br>
<strong>号内可以放置大写字母 （代表一个未知类型） 或问号 ? （代表若</strong><br>
<strong>干个类型）作为参数。比如，习惯上选择以下字母代表某种类型：</strong><br>
1. T 意为某种类型<br>
2. E 意为 链表、数组里的元素，如List<!-- raw HTML omitted --> list 表示 list 里的元素。<br>
3. K意味map(k,v) 里的键值 Key<br>
4. V 意为 返回或映射的值。 <br>
<strong>然而，泛型的运用要受到如下限制 ：</strong><br>
1. 不能使用基本类型的类型参数，可以使用其包装类型代替。
2. 静态成员无法使用类型参数。<br>
3. 不能使用泛型类异常<br>
4. 不能实例化泛型对象或数组，如： <br>
<code>T t = new T();  T[] a=new T5;</code>
5. 不能使用泛型数组，如：</p>
<h6 id="mvc">MVC</h6>
<p>M:模型(model)<br>
V:视图(view)<br>
C:控制器(controller)</p>
<h5 id="heading">分层领域模型规约</h5>
<p>DO（Data Object） ： 此对象与数据库表结构一一对应，通过 DAO 层向上传输数据源对象。
DTO（Data Transfer Object） ：数据传输对象， Service 或 Manager 向外传输的对象。
BO（Business Object） ：业务对象， 由 Service 层输出的封装业务逻辑的对象。
AO（Application Object）： 应用对象， 在 Web 层与 Service 层之间抽象的复用对象模型，极为贴近展示层，复用度不高。
VO（View Object） ： 显示层对象，通常是 Web 向模板渲染引擎层传输的对象。
Query：数据查询对象，各层接收上层的查询请求。 注意超过 2 个参数的查询封装，禁止使用 Map 类来传输。
POJO（ Plain Ordinary Java Object）：在本手册中， POJO专指只有setter/getter/toString的简单类，包括DO/DTO/BO/VO等。</p>
<h5 id="heading1">领域模型命名规约：</h5>
<p>数据对象：xxxDO，xxx即为数据表名。
数据传输对象：xxxDTO，xxx为业务领域相关的名称。
展示对象：xxxVO，xxx一般为网页名称。
POJO是DO/DTO/BO/VO的统称，禁止命名成xxxPOJO。</p>
<h6 id="pojo">POJO</h6>
<p>POJO（Plain Ordinary Java Object）简单的Java对象，实际就是普通JavaBeans。
POJO是一个简单的普通的Java对象，它不包含业务逻辑或持久逻辑等，
但不是JavaBean、EntityBean等，不具有任何特殊角色和不继承或不
实现任何其它Java框架的类或接口。
一般在web应用程序中建立一个数据库的映射对象时，我们只能称它为POJO</p>
<h6 id="java-bean">Java Bean</h6>
<p>Java Bean 应具有一个无参的构造器，另外，
通常 Java Bean 还要实现 Serializable 接口用
于实现 Bean 的持久性。 Java Bean 是不能被跨
进程访问的</p>
<h6 id="vovalue-object">VO(value -object)</h6>
<p>dto(Data Transform Object) 数据转换对象</p>
<p>DTO
Entity
PO
Proxy
Facade</p>
<p>RPC（Remote Procedure Call Protocol）
——远程过程调用协议，它是一种通过网络从
远程计算机程序上请求服务，而不需要了解底
层网络技术的协议。</p>
<h6 id="heading2">设计模式</h6>
<ol>
<li>工厂模式： Factory</li>
<li>单例模式： Singleton</li>
<li>建造者模式： Bilder</li>
<li>原型模式:  Prototype 拷贝原型来创建新实例</li>
<li>适配器模式：Adapter</li>
<li>桥梁模式：（柄体模式（handle and body） 接口模式(interface)）：</li>
<li>组合模式：Composite</li>
<li>装饰模式 ：</li>
<li>外观模式：Facade  为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口，使子系统更加容易使用。</li>
<li>享元模式：Flyweight</li>
<li>代理模式：Proxy Pattern</li>
<li>职责链模式: chain of responsibility</li>
<li>模板模式：</li>
</ol>
<h5 id="heading3">跨域</h5>
<p>跨域，指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的，是浏览器对JavaScript施加的安全限制。</p>
<h6 id="heading4">示例：</h6>
<ul>
<li><a href="http://www.123.com/index.html">http://www.123.com/index.html</a> 调用 <a href="http://www.123.com/server.PHP">http://www.123.com/server.PHP</a> （非跨域）</li>
<li><a href="http://www.123.com/index.html">http://www.123.com/index.html</a> 调用 <a href="http://www.456.com/server.php">http://www.456.com/server.php</a> （主域名不同:123/456，跨域）</li>
<li><a href="http://abc.123.com/index.html">http://abc.123.com/index.html</a> 调用 <a href="http://def.123.com/server.php">http://def.123.com/server.php</a> （子域名不同:abc/def，跨域）</li>
<li><a href="http://www.123.com:8080/index.html">http://www.123.com:8080/index.html</a> 调用 <a href="http://www.123.com:8081/server.php">http://www.123.com:8081/server.php</a> （端口不同:8080/8081，跨域）</li>
<li><a href="http://www.123.com/index.html">http://www.123.com/index.html</a> 调用 <a href="https://www.123.com/server.php">https://www.123.com/server.php</a> （协议不同:http/https，跨域）</li>
<li><code>请注意：localhost和127.0.0.1虽然都指向本机，但也属于跨域。</code></li>
</ul>
<h6 id="heading5">解决办法：</h6>
<ol>
<li>
<p>JSONP：
使用方式就不赘述了，但是要注意JSONP只支持GET请求，不支持POST请求。</p>
</li>
<li>
<p>代理：
例如www.123.com/index.html需要调用www.456.com/server.php，可以写一个接口www.123.com/server.php，由这个接口在后端去调用www.456.com/server.php并拿到返回值，然后再返回给index.html，这就是一个代理的模式。相当于绕过了浏览器端，自然就不存在跨域问题。</p>
</li>
<li>
<p>PHP端修改header（XHR2方式）
在php接口脚本中加入以下两句即可：</p>
</li>
</ol>
<pre><code>header('Access-Control-Allow-Origin:*');//允许所有来源访问

header('Access-Control-Allow-Method:POST,GET');//允许访问的方式
</code></pre>
</div>


  
</article>
      <footer id="main-footer" class="container main_footer">
  

  <div class="container nav foot no-print">
  
<a href="https://lvzongcheng.gitee.io/license">license</a>


  <a class="toplink" href="#">back to top</a>

</div>

  <div class="container credits">
  
<div class="container footline">
  
  code with <!-- raw HTML omitted --><!-- raw HTML omitted -->


</div>


  
<div class="container copyright">
  
  (c) 2015 yourname.


</div>


</div>

</footer>

    </main>
    
<script type="text/javascript">
  (function() {
    
    
    if (window.location.hostname == "localhost")
      return;
    var dsq = document.createElement('script'); dsq.async = true; dsq.type = 'text/javascript';
    dsq.src = '//your_disqus_shortname.disqus.com/count.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();
</script>



<script src="/js/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>



    
  </body>
</html>

